import { ILanguage, TLangName } from '@/interface';

const Languages: Record<TLangName, ILanguage> = {
  // 以下为世界常用语言（此数据来自互联网，可能不准确）
  english: { name: 'English', code: 'en' },
  chineseSimplified: { name: '简体中文', code: 'zh-CN' },
  chineseTraditionalTW: { name: '繁體中文（中国台湾省）', code: 'zh-TW' },
  spanish: { name: 'Español', code: 'es' },
  hindi: { name: 'हिन्दी', code: 'hi' },
  arabic: { name: 'العربية', code: 'ar' },
  bengali: { name: 'বাংলা', code: 'bn' },
  portuguese: { name: 'Português', code: 'pt' },
  russian: { name: 'Русский', code: 'ru' },
  japanese: { name: '日本語', code: 'ja' },
  french: { name: 'Français', code: 'fr' },
  german: { name: 'Deutsch', code: 'de' },
  korean: { name: '한국어', code: 'ko' },
  turkish: { name: 'Türkçe', code: 'tr' },
  vietnamese: { name: 'Tiếng Việt', code: 'vi' },
  italian: { name: 'Italiano', code: 'it' },

  // 以下为世界不常用语言（此数据来自互联网，可能不准确）
  afrikaans: { name: 'Afrikaans', code: 'af' },
  albanian: { name: 'Shqip', code: 'sq' },
  amharic: { name: 'አማርኛ', code: 'am' },
  armenian: { name: 'Հայերեն', code: 'hy' },
  assamese: { name: 'অসমীয়া', code: 'as' },
  aymara: { name: 'Aymar aru', code: 'ay' },
  azerbaijani: { name: 'Azərbaycanca', code: 'az' },
  bambara: { name: 'Bamanankan', code: 'bm' },
  basque: { name: 'Euskara', code: 'eu' },
  belarusian: { name: 'Беларуская', code: 'be' },
  bhojpuri: { name: 'भोजपुरी', code: 'bho' },
  bosnian: { name: 'Bosanski', code: 'bs' },
  bulgarian: { name: 'български език', code: 'bg' },
  catalan: { name: 'Català', code: 'ca' },
  cebuano: { name: 'Cebuano', code: 'ceb' },
  corsican: { name: 'Corsu', code: 'co' },
  croatian: { name: 'Hrvatski', code: 'hr' },
  czech: { name: 'Čeština', code: 'cs' },
  danish: { name: 'Dansk', code: 'da' },
  dhivehi: { name: 'ދިވެހި', code: 'dv' },
  dogri: { name: 'डोगरी', code: 'doi' },
  dutch: { name: 'Nederlands', code: 'nl' },
  esperanto: { name: 'Esperanto', code: 'eo' },
  estonian: { name: 'Eesti', code: 'et' },
  ewe: { name: 'Eʋegbe', code: 'ee' },
  filipino: { name: 'Filipino', code: 'fil' },
  finnish: { name: 'Suomi', code: 'fi' },
  frisian: { name: 'Frysk', code: 'fy' },
  galician: { name: 'Galego', code: 'gl' },
  georgian: { name: 'ქართული', code: 'ka' },
  greek: { name: 'Ελληνικά', code: 'el' },
  guarani: { name: 'Avañeʼẽ', code: 'gn' },
  gujarati: { name: 'ગુજરાતી', code: 'gu' },
  haitianCreole: { name: 'Kreyòl ayisyen', code: 'ht' },
  hausa: { name: 'Hausa', code: 'ha' },
  hawaiian: { name: 'ʻŌlelo Hawaiʻi', code: 'haw' },
  hebrew: { name: 'עברית', code: 'he' },
  hmong: { name: 'Hmoob', code: 'hmn' },
  hungarian: { name: 'Magyar', code: 'hu' },
  icelandic: { name: 'Íslenska', code: 'is' },
  igbo: { name: 'Igbo', code: 'ig' },
  ilocano: { name: 'Ilokano', code: 'ilo' },
  indonesian: { name: 'Bahasa Indonesia', code: 'id' },
  irish: { name: 'Gaeilge', code: 'ga' },
  javanese: { name: 'ꦧꦱꦗꦮ', code: 'jv' },
  kannada: { name: 'ಕನ್ನಡ', code: 'kn' },
  kazakh: { name: 'Қазақ тілі', code: 'kk' },
  khmer: { name: 'ភាសាខ្មែរ', code: 'km' },
  kinyarwanda: { name: 'Ikinyarwanda', code: 'rw' },
  konkani: { name: 'कोंकणी', code: 'gom' },
  krio: { name: 'Krio', code: 'kri' },
  kurdish: { name: 'Kurdî', code: 'ku' },
  kurdishSorani: { name: 'کوردی', code: 'ckb' },
  kyrgyz: { name: 'Кыргызча', code: 'ky' },
  lao: { name: 'ພາສາລາວ', code: 'lo' },
  latin: { name: 'Latina', code: 'la' },
  latvian: { name: 'Latviešu', code: 'lv' },
  lingala: { name: 'Lingála', code: 'ln' },
  lithuanian: { name: 'Lietuvių', code: 'lt' },
  luganda: { name: 'Luganda', code: 'lg' },
  luxembourgish: { name: 'Lëtzebuergesch', code: 'lb' },
  macedonian: { name: 'Македонски', code: 'mk' },
  maithili: { name: 'मैथिली', code: 'mai' },
  malagasy: { name: 'Malagasy', code: 'mg' },
  malay: { name: 'Bahasa Melayu', code: 'ms' },
  malayalam: { name: 'മലയാളം', code: 'ml' },
  maltese: { name: 'Malti', code: 'mt' },
  maori: { name: 'Te Reo Māori', code: 'mi' },
  marathi: { name: 'मराठी', code: 'mr' },
  meitei: { name: 'ꯃꯦꯏꯇꯦꯏ꯫', code: 'mni-Mtei' },
  mizo: { name: 'Mizo ṭawng', code: 'lus' },
  mongolian: { name: 'Монгол хэл', code: 'mn' },
  myanmar: { name: 'မြန်မာစာ', code: 'my' },
  nepali: { name: 'नेपाली', code: 'ne' },
  norwegian: { name: 'Norsk', code: 'no' },
  nyanja: { name: 'Chinyanja', code: 'ny' },
  odia: { name: 'ଓଡ଼ିଆ', code: 'or' },
  oromo: { name: 'Afaan Oromoo', code: 'om' },
  pashto: { name: 'پښتو', code: 'ps' },
  persian: { name: 'فارسی', code: 'fa' },
  polish: { name: 'Polski', code: 'pl' },
  punjabi: { name: 'ਪੰਜਾਬੀ', code: 'pa' },
  quechua: { name: 'Runasimi', code: 'qu' },
  romanian: { name: 'Română', code: 'ro' },
  samoan: { name: 'Gagana faʻa Sāmoa', code: 'sm' },
  sanskrit: { name: 'संस्कृतम्', code: 'sa' },
  scottishGaelic: { name: 'Gàidhlig', code: 'gd' },
  sepedit: { name: 'Sesotho sa Leboa', code: 'nso' },
  serbian: { name: 'Српски', code: 'sr' },
  sesotho: { name: 'Sesotho', code: 'st' },
  shona: { name: 'ChiShona', code: 'sn' },
  sindhi: { name: 'سنڌي', code: 'sd' },
  sinhala: { name: 'සිංහල', code: 'si' },
  slovak: { name: 'Slovenčina', code: 'sk' },
  slovenian: { name: 'Slovenščina', code: 'sl' },
  somali: { name: 'Soomaali', code: 'so' },
  sundanese: { name: 'Basa Sunda', code: 'su' },
  swahili: { name: 'Kiswahili', code: 'sw' },
  swedish: { name: 'Svenska', code: 'sv' },
  tagalog: { name: 'Tagalog', code: 'tl' },
  tajik: { name: 'Тоҷикӣ', code: 'tg' },
  tamil: { name: 'தமிழ்', code: 'ta' },
  tatar: { name: 'Татар теле', code: 'tt' },
  telugu: { name: 'తెలుగు', code: 'te' },
  thai: { name: 'ไทย', code: 'th' },
  tigrinya: { name: 'ትግርኛ', code: 'ti' },
  tsonga: { name: 'Xitsonga', code: 'ts' },
  turkmen: { name: 'Türkmen', code: 'tk' },
  twi: { name: 'Twi', code: 'ak' },
  ukrainian: { name: 'Українська', code: 'uk' },
  urdu: { name: 'اردو', code: 'ur' },
  uighur: { name: 'ئۇيغۇرچە', code: 'ug' },
  uzbek: { name: 'O‘zbek', code: 'uz' },
  welsh: { name: 'Cymraeg', code: 'cy' },
  xhosa: { name: 'isiXhosa', code: 'xh' },
  yiddish: { name: 'ייִדיש', code: 'yi' },
  yoruba: { name: 'Yorùbá', code: 'yo' },
  zulu: { name: 'isiZulu', code: 'zu' }
};

export default Languages;
